#pragma once
#include "Distribution.h"
#include "QueueInterface.h"


class Station
{
public:
	Station(int machineCount, Distribution* dist, QueueInterface<>* queue);
	~Station(void);
	void linkToStation(Station* , double );
	virtual void timeTrigger(double time, Scheduler* scheduler);
	void normalizeLinks();
	virtual bool putItem(pair<double, int> item, Station* fromStation, Scheduler* scheduler);
protected:
	vector<pair<Station*, double>> nextStations;
	int machineCount;
	pair<double, int>* machines;
	Distribution* distribution;
	QueueInterface<int>* queue;
	QueueInterface<pair<Station*, int>>* waitingQueue;
	bool pull(int mId);
};

